<?php
require_once 'ApibaseController.php';

/**
 * AKB48先行抽選問い合わせAPI<br/>
 *
 * @package apamanshop
 * @author H.Imamura
 * @copyright (c) 2012 SystemSoft Corp. All rights reserved
 */
class Inquiry_Akb201207sendController extends Inquiry_ApibaseController
{
	/**
	 * メインアクション
	 *
	 * @access public
	 * @return void
	 */
	public function indexAction()
	{
		// 変数初期化
		$api_params = array();
		$api_params['Target']	= $this->_params['Target'];		// 対象者
		$TargetStr = '';
		switch ($this->_params['Target']) {
			case '01':
				$TargetStr = '家族';
				break;
			case '02':
				$TargetStr = '友達';
				break;
			case '03':
				$TargetStr = '同僚';
				break;
			case '04':
				$TargetStr = '先輩';
				break;
			case '05':
				$TargetStr = '後輩';
				break;
			case '99':
				$TargetStr = 'その他';
				break;
		}
		$api_params['TargetStr'] = $TargetStr;					// 対象者テキスト
		$api_params['Message']	= $this->_params['Message'];	// 応援メッセージ
		$api_params['Name']		= $this->_params['Name'];		// 名前
		$api_params['Mail']		= $this->_params['Mail'];		// MAIL
		$api_params['Tel1']		= $this->_params['Tel1'];		// TEL1
		$api_params['Tel2']		= $this->_params['Tel2'];		// TEL2
		$api_params['Tel3']		= $this->_params['Tel3'];		// TEL3
		$api_params['Tel']		= $api_params['Tel1'].'-'.$api_params['Tel2'].'-'.$api_params['Tel3'];	// TEL(ALL)
		$api_params['Sex']		= $this->_params['Sex'];		// 性別
		if ($this->_params['Sex'] == '1') {
			$api_params['SexStr'] = '女性';
		} else {
			$api_params['SexStr'] = '男性';
		}
		$api_params['Zip1']		= $this->_params['Zip1'];		// ZIP1
		$api_params['Zip2']		= $this->_params['Zip2'];		// ZIP2
		if (!empty($this->_params['Zip1']) && !empty($this->_params['Zip2'])) {
			$api_params['Zip']	= $this->_params['Zip1'].'-'.$this->_params['Zip2'];	// ZIP(ALL)
		} else {
			$api_params['Zip']	= '';
		}
		$api_params['Address']	= '';							// 住所
		if (!empty(Apm_Config_Shop::$PREF_LIST[$this->_params['PrefCd']])) {
			$api_params['Address'] = Apm_Config_Shop::$PREF_LIST[$this->_params['PrefCd']];
		}
		$api_params['Address']	.= $this->_params['Address'];
		$api_params['TimeStr']	= $this->GetTimeStringDisp();	// 送信時刻
		
		$api_params['MAIL_NETWORK'] = Apm_Config_Mail::MAIL_NETWORK;
		
		//--- メール判定 ---
		$this->setSendMailFlag($this->_params['Mail']);
		
		// モデルの呼び出し
		$this->_model = new Inquiry_Model_Akb201207();
		// トランザクション開始
		$db = $this->_model->getDbConnection();
		$this->_model->startTransaction($db);
		try {
			// DB登録
			$result = $this->_model->insertEntryLog($api_params, $db);
			if ($result == 0) {
				 $this->raiseError('DB登録エラー');
			}
			
			// メール送信処理
			$result =  $this->SendMailMain($api_params);
			if ($result == 0) {
				 $this->raiseError('メール送信エラー');
			}
			
			// コミット
			__log_debug(__FILE__, __LINE__, __METHOD__, "コミットします");
			$this->_model->commitTransaction($db);
			
			$result = 1;
		} catch (Exception $e) {
			__log_error(__FILE__, __LINE__, __METHOD__, $e->getMessage());
			
			// ロールバック
			__log_debug(__FILE__, __LINE__, __METHOD__, "ロールバックします");
			$this->_model->rollbackTransaction($db);
			
			$result = 0;
		}
		$db->closeConnection();
		
		// リダイレクトパラメータ設定
		$re_params = array();
		$re_params['result'] = $result;
		
		// 送信完了画面へリダイレクト
		Apm_Util::redirect($this->_config['apm']['baseurl'].'inquiry/akb201207/send', $re_params);
		exit();
	}

	//メール送信制御
	private function SendMailMain($addinfo)
	{
		$mailResult = false;
		
		// 本部メール送信
		$mailResult = $this->SendMailHonbu($addinfo);
		
		// ユーザへメール送信
		if (!empty($addinfo['Mail']) && $mailResult) {
			$mailResult = $this->SendMailUser($addinfo);
		}
		
		$result = 1;
		if (!$mailResult) {
			$result = 0;
		}
		return $result;
	}

	// 問い合わせユーザへのメール送信
	private function SendMailUser($addinfo)
	{
		// from(送信元)、to（あて先)
		$strMailFrom = array(Apm_Config_Mail::MAIL_NETWORK => "");		//送信元ﾒｰﾙｱﾄﾞﾚｽ
		$strMailTo   = array($addinfo['Mail'] => "");					//送信先ﾒｰﾙｱﾄﾞﾚｽ
		
		// メール本文に必要なパラメータ
		$mail_params[Apm_Otheritems::SEND_MAIL_EX_SUBJECT_KEY] = "［アパマンショップ］アパマン48キャンペーン2012年 新生活応援メッセージ応募ありがとうございました";
		$mail_params[Apm_Otheritems::SEND_MAIL_EX_FROM_KEY] = $strMailFrom;
		$mail_params[Apm_Otheritems::SEND_MAIL_EX_TO_KEY] = $strMailTo;
		
		return $this->sendToiawaseMailJudge("MailAkb201207User.tpl", $addinfo, $mail_params, 3);
	}

	// 本部メール送信
	private function SendMailHonbu($addinfo)
	{
		$strMailFrom = array(Apm_Config_Mail::MAIL_NETWORK => "");		//送信元ﾒｰﾙｱﾄﾞﾚｽ
		$strMailTo   = array(Apm_Config_Mail::MAIL_NETWORK => "");		//送信先ﾒｰﾙｱﾄﾞﾚｽ
		$strMailCc   = array(Apm_Config_Mail::MAIL_NETWORK_CALL => "");
		//$strMailBcc = array(Apm_Config_Mail::MAIL_NETWORK => "");
		
		// メール本文に必要なパラメータ
		$mail_params[Apm_Otheritems::SEND_MAIL_EX_SUBJECT_KEY] = "［アパマンショップ］アパマン48キャンペーン2012年 新生活応援メッセージ応募がありました";
		$mail_params[Apm_Otheritems::SEND_MAIL_EX_FROM_KEY] = $strMailFrom;
		$mail_params[Apm_Otheritems::SEND_MAIL_EX_TO_KEY] = $strMailTo;
		$mail_params[Apm_Otheritems::SEND_MAIL_EX_CC_KEY] = $strMailCc;
		//$mail_params[Apm_Otheritems::SEND_MAIL_EX_BCC_KEY] = $strMailBcc;
		
		return $this->sendToiawaseMailJudge("MailAkb201207Honbu.tpl", $addinfo, $mail_params, 1);
	}

}
?>
